class time {
    constructor(date, formart) {
        // formart 非必需
        this.date = date || new Date();
        this.formart = formart || 'YYYY-MMM-DD HH:mm';
    }
    // 获取当前时间
    getCurrentTime() {
        return this.setFormart()
    }
    // 通过日期转为周几
    getWeekByTime(date, formart) {
        if (!date) {
            date = this.date
        }
        if (!formart) {
            formart = "YYYY-MMM-DD"
        }
        let newDate = this.setFormart(formart,date);
        let key = ['周日', "周一", "周二", "周三", "周四", "周五", "周六"];
        let days = new Date(newDate).getDay()
        return key[days]
    }
    // 通过时间段获取间隔天数
    // {startDate,endDate}
    getDayNum(e) {
        let { startDate, endDate } = e;
        let cha = Math.abs(new Date(endDate).getTime() - new Date(startDate).getTime())
        let d = parseInt(cha / (24 * 60 * 60 * 1000))
        return d
    }
    // 当前时间是否为今天
    isCurrentByTime() {
        let date = this.setFormart("YYYY-MMM-DD",this.date);
        let currentDate = this.setFormart("YYYY-MMM-DD",new Date());
        return date == currentDate
    }
    // num 增加的数量 key 纬度
    // y 年份 m 月份 d 天 h小时
    add(num,key="d"){

    }
    // 获取固定格式的时间 默认 YYYY-MMM-DD HH:mm:ss
    setFormart(formart,time) {
        let date = time ? new Date(time) : new Date(this.date) || new Date();
        if (!formart) {
            formart = this.formart
        }
        let dates = {
            "M+": date.getMonth() + 1, //月份
            "D+": date.getDate(), //日
            "H+": date.getHours(), //小时
            "m+": date.getMinutes(), //分
            "s+": date.getSeconds(), //秒
            "q+": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        if (/(Y+)/.test(formart)) formart = formart.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in dates)
            if (new RegExp("(" + k + ")").test(formart)) formart = formart.replace(RegExp.$1, (RegExp.$1.length == 1) ? (dates[k]) : (("00" + dates[k]).substr(("" + dates[k]).length)))
        return formart
    }
}
export default time